Effective Inline-Threaded Interpretation of Java Bytecode Using Preparation Sequences
نویسندگان
چکیده
Inline-threaded interpretation is a recent technique that improves performance by eliminating dispatch overhead within basic blocks for interpreters written in C [11]. The dynamic class loading, lazy class initialization, and multi-threading features of Java reduce the effectiveness of a straight-forward implementation of this technique within Java interpreters. In this paper, we introduce preparation sequences, a new technique that solves the particular challenge of effectively inline-threading Java. We have implemented our technique in the SableVM Java virtual machine, and our experimental results show that using our technique, inline-threaded interpretation of Java, on a set of benchmarks, achieves a speedup ranging from 1.20 to 2.41 over switch-based interpretation, and a speedup ranging from 1.15 to 2.14 over direct-threaded
منابع مشابه
List of Authors
Inline reference monitoring is a powerful technique to enforce secu-rity policies on untrusted programs. The security-by-contract paradigmproposed by the EU FP6SMS project uses policies, monitoring, andmonitor inlining to secure third-party applications running on mobiledevices. The focus of this paper is on multi-threaded Java bytecode.An important consideration is that...
متن کاملProvably correct inline monitoring for multithreaded Java-like programs
Inline reference monitoring is a powerful technique to enforce security policies on untrusted programs. The security-by-contract paradigm proposed by the EU FP6 SMS project uses policies, monitoring, and monitor inlining to secure third-party applications running on mobile devices. The focus of this paper is on multi-threaded Java bytecode. An important consideration is that inlining should int...
متن کاملMagic-sets for localised analysis of Java bytecode
Static analyses based on denotational semantics can naturally model functional behaviours of the code in a compositional and completely context and flow sensitive way. But they only model the functional i.e., input/output behaviour of a program P , not enough if one needs P ’s internal behaviours i.e., from the input to some internal program points. This is, however, a frequent requirement for ...
متن کاملCombining Offline and Online Optimizations: Register Allocation and Method Inlining
Fast dynamic compilers trade code quality for short compilation time in order to balance application performance and startup time. This paper investigates the interplay of two of the most effective optimizations, register allocation and method inlining for such compilers. We present a bytecode representation which supports offline global register allocation, is suitable for fast code generation...
متن کاملBicolanoMT: a Formalization of Multi-Threaded Java at Bytecode Level
This paper describes a formalization of multi-threaded Java bytecode in Coq. The formalization builds on the existing Bicolano formalization for sequential Java bytecode – which captures basically all aspects of sequential bytecode supported by the CLDC (Java for mobile phones) platform. We use a special extension framework to extend the existing formalization in a systematic way. The formaliza...
متن کامل